/**
 * @Title: HDFSUtilsCDN.java
 * @Package com.hugedata.dataplatform.cdn.util
 * @Description: TODO(用一句话描述该文件做什么)
 * @author Dangzhang
 * @date 2014-4-2 上午9:39:30
 * @version V1.0
 *          Update Logs:
 *          ****************************************************
 *          Name:
 *          Date:
 *          Description:
 ****************************************************** 
 */
package com.hugedata.cdnserver.util;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.log4j.Logger;

/**
 * @ClassName: HDFSUtilsCDN
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @author Dangzhang
 * @date 2014-4-2 上午9:39:30
 * 
 */
public class HDFSUtilsCDN
{
    private final static Logger LOGGER = Logger.getLogger(HDFSUtilsCDN.class);

    /**
     * @Title: checkAndDelete
     * @Description: 删除HDFS路径下的文件或文件夹
     * @author Dangzhang
     * @param path
     *            要删除的文件或文件夹
     * @param conf
     *            org.apache.hadoop.conf.Configuration对象
     * @return 返回true表示删除成功，返回false表示删除失败
     * @throws IOException
     */
    public static boolean delete(String path, Configuration conf)
    {
        Path dst_path = new Path(path);
        try
        {
            FileSystem hdfs = dst_path.getFileSystem(conf);
            // 检查是否存在文件
            if (hdfs.exists(dst_path))
            {
                // 有则删除
                hdfs.delete(dst_path, true);
                LOGGER.info("删除目录" + path + "成功......");
            }
            else
            {
                LOGGER.error(path + "路径不存在........");
            }
            return true;
        }
        catch (IOException e)
        {
            LOGGER.error("删除目录" + path + "失败......");
        }
        return false;
    }

    /**
     * @Title: main
     * @Description: TODO(这里用一句话描述这个方法的作用)
     * @author Dangzhang
     * @param args
     * @throws
     */
    public static void main(String[] args)
    {
        Configuration conf = new Configuration(false);
        // 方法一：添加两个配置项
        // 从配置文件中读取集群的配置
        conf.set("fs.default.name", "hdfs://192.168.10.105:9000");
        // 此项不变
        conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");

        Boolean bIsOK = false;
        String path = "/dz/test/20140329/";
        bIsOK = HDFSUtilsCDN.delete(path, conf);
    }
}
